﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace hypervmgmtlib
{
    public class VMMgmt : IEnumerable<VM>
    {
        public VMMgmt(string hostname) { }

        public VM Spawn(string name)
        {
            return null;
        }

        public VM this[string vmid]
        {
            get { return null; }
        }

        public IEnumerator<VM> GetEnumerator()
        {
            throw new NotImplementedException();
        }

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            throw new NotImplementedException();
        }
    }

    public class VM
    {
        public string Id { get { return null; } }
        public string Name { get; set; }

        public int Cpu { get; set; }
        public int Mem { get; set; }


        public void AddStorage(ControllerType controller, DriveType drvType, string connection)
        {

        }

        public void RemoveStorage(string connection)
        {

        }

        public Drive[] Drives { get { return null; } }

        public void Destroy() { }


    }

    public class Drive
    {
        public Drive(ControllerType ct, string address, int drvIndex, DriveType dt, string connection)
        {

        }
    }

    public enum ControllerType
    {
        Ide, Scsi
    }

    public enum DriveType
    {
        Vhd, Iso, HdPassthrough, DvdPassthrough
    }
}
